package com.sinodata.bsm.cicp.finder.vsphere;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;

import com.sinodata.bsm.cicp.finder.Finder;
import com.sinodata.bsm.cicp.util.SnmpUtil;

public class Network extends Finder {
    private static Logger logger = Logger.getLogger(Network.class);
    // 主机描述
    private static final String NETWORK_OID = ".1.3.6.1.2.1.31.1.1.1.1";

    @Override
    public List<String[]> find(String ip, Map params) {
        List<String[]> results = new ArrayList<String[]>();
        String[] adapters = null;
        try {
            String values = SnmpUtil.getValueBySnmpTable(ip, NETWORK_OID, "public");

            String[] names = values.split("[#]");
            /*
             * 每一个String[]表示一个资源数据，String[]数据定义如下： 第一个元素：资源的内部标示 第二个元素：资源名称
             * 第三个元素：资源描述 第四-第N个参数：返回的属性值
             */

            for (int i = 0; i < names.length; i++) {
                String v = names[i].trim();
                if (v.equals("") || v.indexOf("vusb") != -1) {
                    continue;
                }
                adapters = new String[4];
                adapters[0] = v;
                adapters[1] = v;
                adapters[2] = "网卡名称：" + v;
                adapters[3] = v;
                results.add(adapters);
            }

        } catch (Exception e) {
            logger.error("error find Network...", e);
        }
        return results;
    }

}
